<html>

<head>
<title>The kernel adventure</title>
</head>

<body>
<center> <h1>The kernel adventure</h1>
<img border="0" src="pictures/kernel.jpg" width="75" height="75"><br></center>

<p>
<B>12th of March 2008 </B><BR>
I tested the first context switch I have done. The switch works but I still have problem with the stack pointer. It goes back to the 
initial value while I forced it to a task specific stack. But that's a first success!

<HR>

<B>February 2008 </B><BR>
Still problem to find time for this project, but I continued to put my idea on paper, more precisely for the device driver concept.
(See "The device driver")

<HR>

<B>October 2007 </B><BR>
The context switch assembly file has been written. it saves the sp, fp, gp and ra registers. I had to read the assembly file kernel.s_ex
to understand how the argument passing is done and how the registers are used in C files. The main question was what to save and how not
to interfere when coming back to the current context.
I had also to modify the rules.mak to compile the .s files. I spent hours in finding how to compile (ex: options) this type of file
properly.
The project has been put under subversion (file://c:/repositories/colibri/trunk/colibri).

<HR>

<B>3rd of May 2007 </B><BR>
Makedepend of cygwin is a nice tool to make dependencies but it requires cygwin to be installed. At least the cygwin1.dll is required.
I changed the makefile command to that makedepend.
<HR>

<B>25th of April 2007 </B><BR>
I found a work around for the UART. I did not solved the issue but I can see "coucou" on my terminal.
I'll solved it when I will come back on the drivers part of the kernel.
<HR>

<B>22nd of March 2007 </B><BR>
I started to code the UART driver. I need at least an output channel somewhere to see what I am doing.
Uart did not work, blocking on waiting for TX completion.
<HR>

<B>10th of March 2007 </B><BR>
The non recursive makefile is really nice.
I also set up everything under codeblocks, a nice open source IDE.
<HR>

<B>2nd of March 2007 </B><BR>
The build environment is complete. I finally used sde-mips environment as compilers. The environment which was given with the board. It took me a bit of time to find out on what
compilers I will do it. I had home linux GCC, vxworks compilos and sde-mips. The simpliest was the already configured MIPS environment coming with the board. I did not forget
the other... For later!
<HR>

<B>February 2007 </B><BR>
The build environment is ongoing, I decided to use non recursive makefile. I'll see until where I can use only one makefile! The advantage is that the dependencies are really
well performed. No problem due to the fact that a file has not been recompiled.
<HR>

<B>January 2007 </B><BR>
The decision has been finally taken. I will try to do my own kernel on MIPS processor. I called it Colibri and I don't care if this name is already used by somebody else.
I took the old MIPS board in my closet, found a power supply, then start digging in how to set it up again.
The board is starting. I got the PMON prompt!
</P>

<hr>
<center> Copyright@ Luc Fourestier 2008 : luc.fourestier@gmail.com </center> <br>

</body>
</html>
